<?php
/**
 * Created by PhpStorm.
 * User: edmmss
 * Date: 2018/11/14
 * Time: 10:00
 */

namespace app\modules\prototype\abstractBook;

abstract class BookPrototype
{
    public $title;

    public $category;

    /**
     * 当对象被复制后，PHP 5 会对对象的所有属性执行一个浅复制（shallow copy）。所有的引用属性 仍然会是一个指向原来的变量的引用。
     * 当复制完成时，如果定义了 __clone() 方法，则新创建的对象（复制生成的对象）中的 __clone() 方法会被调用，可用于修改属性的值（如果有必要的话）
     *
     * @date   2018/11/14
     * @author edmmss
     * @return mixed
     */
    abstract public function __clone();

    public function getTitle(): string
    {
        return $this->title;
    }

    public function setTitle($title): void
    {
        $this->title = $title;
    }
}